#ifndef VALEUR_H
#define	VALEUR_H

#include <string>
using namespace std;

class Valeur {
public:
    virtual ~Valeur() {};
    virtual string getDeclCpp() {return "";};
private:
};

class ValeurEntiere : public Valeur {
public: 
    ValeurEntiere(int val=0){ this->val = val; }
    int getValeur() { return this->val; }
    void setValeur(int val) { this->val = val; }
    string getDeclCpp() { return "int "; }
private:
    int val;
};

class ValeurReelle : public Valeur {
public: 
    ValeurReelle(float val=0.0){ this->val = val; }
    float getValeur() { return this->val; }
    void setValeur(float val) { this->val = val; }
    string getDeclCpp() { return "float"; }
private:
    float val;
};

class ValeurCaractere : public Valeur {
 public: 
    ValeurCaractere(char val='\0'){ this->val = val; }
    char getValeur() { return this->val; }
    void setValeur(char val) { this->val = val; }
    string getDeclCpp() { return "char "; }
private:
    char val;
};

class ValeurChaine : public Valeur {
public: 
    ValeurChaine(string val="") { this->val = val; }
    string getValeur() { return this->val; }
    void setValeur(string val) { this->val = val; }
    string getDeclCpp() { return "string "; }
private:
    string val;
};

#endif	/* VALEUR_H */

